package com.kang.service;

import java.util.List;

import com.kang.pojo.ItemDetail;
import com.kang.pojo.Picking;
import com.kang.pojo.PickingItem;
import com.vonechina.entity.page.ItemDetailPage;
import com.vonechina.entity.page.PickingPage;
/**
 * 领用记录服务层
 * @author zs614
 *
 */
public interface PickingService {
	/**
	 *  修改领料出库-物品表
	 * @param pickingItem 领料物品实体类
	 * @return
	 */
	public int updatePickingIteminformation(PickingItem pickingItem);
	/**
	 * 根据ID查询领用记录
	 * @param pickingID 领用记录ID
	 * @return
	 */
	public Picking selectPickingByID(Integer pickingID);
	/**
	 * 查询领用记录下物品信息
	 * @param pickingID  领用记录ID
	 * @return
	 */
	public List<PickingItem> listPickingItem(Integer pickingID);
	/**
	 * 分页查询领用记录
	 * @param page 搜索条件实体类
	 * @return
	 */
	public List<Picking> listPicking(PickingPage page);
	/**
	 * 新增领用记录
	 * @param picking 领用记录实体类
	 * @return
	 */
	public Integer insertPicking(Picking picking);
	/**
	 * 生成新的领用记录编号
	 * @return
	 */
	public String generatePickingNumber();
	/**
	 * 分页查询可领用物品
	 * @param page 搜索条件实体类
	 * @return
	 */
	public List<ItemDetail> listItemNotIn(ItemDetailPage page);
	/**
	 * 新增领用物品
	 * @param item 领用物品
	 * @return
	 */
	public Integer addPickingItem(PickingItem item);
	/**
	 * 提交领用记录
	 * @param pickingID 领用记录ID
	 * @param userID 用户ID
	 * @return
	 */
	public Integer submitPicking(int pickingID, int userID);
	/**
	 * 更新领用记录
	 * @param picking 领用记录实体类
	 * @return
	 */
	public Integer updatePicking(Picking picking);
	/**
	 * 保存领用记录下物品信息
	 * @param picking  领用记录ID
	 * @param itemIds 领用记录物品来源ID
	 * @param pickingNumber 物品领用数量
	 * @return
	 */
	public Integer savePickingItem(Picking picking, Integer[] itemIds,
			Integer[] pickingNumber);
	/**
	 * 删除领用记录
	 * @param pickingID 领用记录ID
	 * @return
	 */
	public Integer deletePicking(Integer pickingID);
}
